﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Runtime.Serialization;

namespace KPIS.GERP.Models.SYS
{
    [Table("SysSearchResult")]
    public class SearchResult
    {
        [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [DataMember]
        public virtual int SearchId { get; set; }
        [DataMember]
        public virtual string SearchKeyword { get; set; }
        [DataMember]
        public virtual bool SearchTitleOnly { get; set; }
        [DataMember]
        public virtual string SearchByEmployeeName { get; set;}
        [DataMember]
        public virtual bool SearchByEmployeeNameExactName { get; set; }
        [DataMember]
        public virtual int ResultAmount { get; set; }
        [DataMember]
        public virtual string RecordStatus { get; set; }
        [DataMember]
        public virtual int CreatedBy { get; set; }
        [DataMember]
        public virtual DateTime? CreatedWhen { get; set; }
        [DataMember]
        public virtual int? UpdatedBy { get; set; }
        [DataMember]
        public virtual DateTime? UpdatedWhen { get; set; }
        [DataMember]
        public virtual ICollection<SearchResultDtl> SearchResultDtls { get; set; }
        [DataMember]
        public virtual string SeacrhOption { get; set; }
        [DataMember]
        public virtual string SortResultByType { get; set; }
        [DataMember]
        public virtual string SortResultOrdering { get; set; }
        
        [NotMapped]
        public string[] SearchKeywords
        {
            get { return (SearchKeyword ?? string.Empty).SplitBySpaceExcludeEmpty(); }
        }

        [NotMapped]
        public bool SearchByEmployeeNameUsing
        {
            get { return !string.IsNullOrWhiteSpace(SearchByEmployeeName); }
        }

        public SearchResult()
        {
            RecordStatus = "U";
        }
    }

    public static class SeacrhOptionEnum
    {
        public static string ทั้งหมด = "ทั้งหมด";
        public static string ประเภทพัสดุ = "ประเภทพัสดุ";
        public static string หมวดพัสดุ = "หมวดพัสดุ";
        public static string กลุ่มพัสดุ = "กลุ่มพัสดุ";
        public static string รายการพัสดุ = "รายการพัสดุ";
        public static string แจ้งความประสงค์ = "แจ้งความประสงค์";
        public static string รายการขอซื้อจ้าง = "รายการขอซื้อจ้าง";
        public static string ใบสั่งงานสัญญา = "ใบสั่งงานสัญญา";
        public static string รายการตรวจรับ = "รายการตรวจรับ";
        //public static string ทะเบียนคุมหลักประกันสัญญา = "ทะเบียนคุมหลักประกันสัญญา";
        public static string ระเบียบจัดซื้อจ้าง = "ระเบียบจัดซื้อจ้าง";
        public static string หน่วยนับ = "หน่วยนับ";
        public static string ทะเบียนผู้ขาย = "ทะเบียนผู้ขาย";
        public static string คลังพัสดุ = "คลังพัสดุ";
        public static string เบิก = "เบิก";
        public static string โอน = "โอน";
        public static string จ่าย = "จ่าย";
        public static string ตรวจสอบ = "ตรวจสอบ";
        public static string ทะเบียนคุมพัสดุ = "ทะเบียนคุมพัสดุ";
        public static string จำหน่ายพัสดุ = "จำหน่ายพัสดุ";
        public static string ค่าเสื่อม = "ค่าเสื่อม";
        public static string คำขออนุมัติ = "คำขออนุมัติ";
        public static string การลา = "การลา";
    }

    public static class SortResultByTypeEnum
    {
        public static string กระทู้ = "กระทู้";
        public static string วันที่ = "วันที่";
        public static string ชื่อผู้ใช้งาน = "ชื่อผู้ใช้งาน";
    }

    public static class  SortResultOrderingEnum
    {
        public static string มากไปน้อย = "มากไปน้อย";
        public static string น้อยไปมาก = "น้อยไปมาก";
    }
}
